<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="utf-8">
      <title>w0926_1_function</title>
      <script>
         /*함수---------------------------------------------
          *선언적함수 / 익명함수
          * 매개변수 없는,있는 함수, 리턴값이 없는,있는 함수
          * 
          * 매개변수  : number, boolean, string, object
          */
         
         //창위치이동
         function winMove(dir){
            switch(dir){
               case 'down' : window.moveBy(0,50);break;   //down   
               case 'up' : window.moveBy(0,-50);break;   //up
               case 'right' : window.moveBy(30,0);break;   //up
               case 'left' : window.moveBy(-30,0);break;   //up
            }
         }
         
         //창크기조절
         function winResize (w,h) {
            window.resizeTo(w,h);
         }
         
         function f1(){alert(f(10));};
         //리턴값있는 함수
         function f(x) {
            return x*x;
         }
         //alert(f(3));
         
         //가변인자 함수-------------------------------
         function f2() {
            var rtn=0;
            for(var i in arguments){
               rtn+=arguments[i];
            }
            return rtn;
         }
         alert(f2(1,2,3,4,5));
            // var res = "";
            // res+=(typeof arguments)+","+arguments.length;
            // document.getElementById("result").innerHTML=res;
         
         /*
          * function 함수명(){
          *    var len=arguments.length;
          * 
          *    if(len==0){
          *       //매개변수값 없을때 실행코드..
          *    }else if(len==1){
          *       //매개변수값 한개 일때 실행코드..
          *    }else{
          *       //매개변수가 n개일때 실행코드
          *    }
          * }
          */
         
         //함수를 매개변수로 받는 함수--------------
         function f3(){
        	 alert('1st경고창');
        	 return;
        	 alert('두번째로 띄우는 경고창');
         }
          
         var s=f3();
         alert(typeof s+" , "+s);

          //함수를 매개변수로 받는 함수 호출
          callFun(function(){alert('hi-');});
         
      </script>
   </head>

   <body>
      <form name="frm1" id="frm1Id">
         
         <fieldset>
            <legend>가변인자 함수</legend>
            <span id="result"></span>
            <input type="button" onclick="f2(3,4,5)" value="가변인자함수"/>
         </fieldset>
         
         <fieldset>
            <legend>연습</legend>
            1.confirm()메소드를 이용해 "게임 한판 하실래요?"라고 물어본다
            2.confirm()이 반환하는 값을 인수로하여 process()함수를 호출한다
              process()함수에서는 인수로 들어온 값이
                참이면      "ok. 게임 시작합니다!"를 출력하고
                거짓이면   "좋아요. 다음을 기약해요!"라고 출력한다.
         </fieldset>
         
         <fieldset>
            <legend>return값있는 함수</legend>
            <input type="button" onclick="f1()" value="제곱구하기"/>
         </fieldset>
         
         <fieldset>
            <legend>창크기조절</legend>
            <input type="button" onclick="winResize(30,40)" value="창크기조절"/>
            <br />
            <input type="button" onclick="window.resizeTo(200,200);" value="resizeTo()"/>
         </fieldset>
         
         <fieldset>
            <legend>창위치이동</legend>
            <input type="button" onclick="winMove(this.value)" value="down" name="btnDown" id="btnDown">
            <input type="button" onclick="winMove(this.value)" value="up">
            <input type="button" onclick="winMove(this.value)" value="right">
            <input type="button" onclick="winMove(this.value)" value="left">
            <button onclick="window.moveTo(200,200);">moveTo()</button><br />
         </fieldset>
         
         <fieldset>
         	<legend>함수-리턴값</legend>
         	<input type="button" onclick="f3()" value="리턴"/>
         </fieldset>
         
      </form>
      <!-- <button onclick="window.moveTo(200,200);">moveTo()</button><br />
      <button onclick="window.moveBy(0,50);">moveBy(0,50)</button><br />
      <button onclick="window.moveBy(0,-50);">moveBy(0,-50)</button><br /> -->
   </body>
</html>